查看原文
其他

认识XML文档(二)XML的元素、标签、文本、属性和实体

可爱的冬梅 职业译员玩转翻译技术
2024-09-09

通过前一篇文档,认识XML文档(一)什么是XML文档?,我们了解了什么是XML文档,也讲了标记语言,通标语言,HTML,以及XML。

但是如果你不是搞编程的或者不是工程师,你可能根本还是听不懂我在说什么。(说实话,我也是搞了好久才弄清楚这些语言)

但是!这也没关系,作为一名翻译,或者作为一名本地化项目经理,你只需要认识文档,知道哪些该翻译哪些不该翻译,也就是看懂文档的结构,会解析文档就可以了。

所以今天,我们先立个小目标,将XML的元素、标签、属性、条件和实体搞明白,让你更加清楚地认识一个xml文档,知道哪些该翻译,哪些不该翻译。

我们拿上文提到的这个xml,给大家举例。

这是怎么组成的呢?

声明语句

XML声明是XML文档的第一句,描述了版本号和编码,其格式如下:

<?xml version="1.0" encoding="utf-8"?>

你可以理解为这是xml的自我介绍:

“Hi,我是一个xml文档的1.0版本,是utf-8编码格式。”

元素、标签和属性

元素

我们把代码片段中,从最左侧的尖括号到最右侧的尖括号之间的所有内容称为“元素”,英文名是Element,是XML文档中很重要的组成部分。

XML元素包括标签、文本、属性、注释等等,比如:<text>Introduction</text>,这就是一个元素。

一个xml文档可能包含很多的元素。

我们先来看看标签。

标签

关于标签,你需要了解:

  • 标签是什么?标签,或者标记,就是你看到的尖括号括起来的部分,一个标签=一个左尖括号+元素名+一个右尖括号。比如:<text></text>,都是标签,标签名是text。标签名一般不翻译。

  • 标签有开始标签和结束标签之分,在这个例子中,<text>是开始标签,</text>是结束标签。具有同一个标签名的“开始标签+结束标签”是一对标签对,比如:<text></text>是一对。

标签对之间的文本,我们称为元素内容。

文本

关于文本,你需要了解:

  • 元素内容一般是需要翻译的文本。比如,在这个例子中:Introduction才是要翻译的文本。

  • 但是有时元素内容也可以不翻译,比如图中的“5-2b”就不需要翻译。


  • 当然,有时候文本之间也有行内标签对的存在,比如图中的<emphasis></emphasis>标签对。

  • 有时候因为元素内容为空,比如:<text></text>,有时把这样的标签也可写成<text/>(斜杠在元素名称后面),这样的元素我们称为空标签,或者独立标记

    你可能会问,空标签还需要翻译吗?——也要分析,我们往下看。

但是文本并不是你想写啥就写啥,有时候得换个写法才能呈现你想写的内容,也就是得改为实体

实体

关于实体,你只需要了解:

XML规范规定,如果下列字符出现在要显示的文本中(在我们的例子中是要翻译的),它们应该写成实体。

如果你想要你需要改为:
<(小于号)
•&lt;
>(大于号)
&gt;
&(和)•&amp;
'(英文单引号)•&apos;
''(英文双引号)&quot;

如果你看不懂,我举个例子。

如果你想要这个文本:

那你的xml应该这样写:

  • 看见了吗?大于号不是>,而是&gt;,单引号不是',而是&apos;。这就是实体。

这告诉我们什么呢?——如果你在xml中遇到了实体,是不是要考虑在翻译的过程中把这些实体设置为标签呢?

如何设置标签,参见:正则篇(六):用正则将文本标记为标签

属性

关于属性,你需要了解:

  • 属性是什么呢?有时我们会给标签加一些详细的描述,这些描述就是属性,你可以理解为标签的注释。

  • 如果是成对标签,属性一般放在开始标签的标签名后面;当然如果是空标签的话,属性会跟在标签名后面。

  • 属性由属性名+=(等号)+英文单引号/双引号+属性值组成。比如这样一个标签:<button value="Cancel" />,这个标签的意思是:

    • 这是一个空标签,标签名是button

    • 有一个value的属性,属性值是cancel。

  • 在遇到有属性值的标签时,要分析属性值是否要翻译。

    比如,我们看到这样一个标签,其属性值需要翻译:


    以及一个属性值不需要翻译的标签:

    对这个标签而言:

    • 标签名是image

    • 有一个src属性

    • src属性值是sample.jpg,不需要翻译,保留原文

    • 标签名是text

    • 有一个info属性

    • info属性值是overview,需要翻译。

    有时候属性可能代表某些条件,可以限定标签或行内标签之间的文本。比如下图中,

    • 第一行,只有遇到translate标签是yes的时候,文本才需要翻译;

    • 第二行,只有遇到translate的属性值是tes的时候,另一个value的属性值才需要翻译。

总结

我们回到再来看看这个最初的xml文本。

一起回顾一下,今天讲了什么?

  • 什么是标签?什么是标签对?什么是独立标记?如,<text>...</text>

  • 什么是属性?什么是属性值?属性如果表示条件怎么做?如,value="OK"

  • 什么是实体?如,•&quot;

那,作为一名PM或者译员,了解XML的注意事项是什么呢?

  • 标签名和属性名不能翻译。比如:<button value="OK" />中,button和value不能动。

  • 标签文本和属性值要译前分析:是否需要翻译?是否是条件?是否是注释?等。

  • 每一个开始标签一定要有结束标签:<text>...</text>

  • 独立标记格式必须正确:<image.../>

  • 实体不能翻译,所以为了防止实体出错,要提前译前处理成标签。

希望通过这两篇文档,让你全面了解XML文档。

偷偷告诉你,只要知道标签和属性,基本都OK了~

下一篇讲xml文档如何用CAT解析如何?

你还想学什么,欢迎来问~


往期精选

认识XML文档(一)什么是XML文档?

这是一篇关于正则表达式的汇总(新)

正则篇(六):用正则将文本标记为标签

正则篇(五):用正则进行文本解析

继续滑动看下一个
职业译员玩转翻译技术
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存